package email

import (
	"crypto/tls"
	"github.com/sirupsen/logrus"
	"gopkg.in/gomail.v2"
	"study/server/global"
)

func SendEmail(subject, data string, byUser ...string) error {
	// QQ邮箱SMTP服务器配置
	e := global.Config.Email

	// 设置SMTP服务器配置
	mailer := gomail.NewMessage()
	mailer.SetHeader("From", e.User)                    // 发件人邮箱
	mailer.SetHeader("To", byUser...)                   // 收件人邮箱
	mailer.SetHeader("Subject", subject+">>YZM:验证码已送达") //主题
	mailer.SetBody("text/html", "您的验证码为:"+data)

	/*
		IMAP/SMTP 设置方法
		用户名/帐户： 你的QQ邮箱完整的地址
		密码： 生成的授权码
		电子邮件地址： 你的QQ邮箱的完整邮件地址
		接收邮件服务器： imap.qq.com，使用SSL，端口号993
		发送邮件服务器： smtp.qq.com，使用SSL，端口号465或587
	*/

	// 构建SMTP客户端
	dialer := gomail.NewDialer(e.Host, e.Port, e.User, e.AuthorizationCode)
	dialer.TLSConfig = &tls.Config{InsecureSkipVerify: true} // 忽略证书校验，仅用于测试环境

	// 发送邮件
	if err := dialer.DialAndSend(mailer); err != nil {
		logrus.Error("邮件发送失败:", err)
		return err
	}
	return nil
}
